/**银行卡号正则校验 */
export const validateCardNumber = (rule, value, callback) => {
    const cardNumberPattern = /^[0-9]{16,19}$/; // 常见的银行卡号长度是16到19位数字
    if (!cardNumberPattern.test(value)) {
        callback(new Error('请输入有效的银行卡号'))
    } else {
        callback()
    }
};

/**英文+数字 */
export const validateENNumberText = (rule, value, callback) => {
    if (value !== undefined && value !== '') {
        if (!/^[A-Z0-9/\\]*$/.test(value)) {
            callback(new Error('仅支持英文大写，阿拉伯数字'))
            return
        }
        callback()
    } else {
        callback()
    }
}

/**中文 */
export const validateCNText = (rule, value, callback) => {
    if (value !== undefined && value !== '') {
        if (!/^[\u4e00-\u9fa5]+$/.test(value)) {
            callback(new Error('仅支持中文'))
            return
        }
        callback()
    } else {
        callback()
    }
}

/**中文、数字 */
export const validateCNNumberText = (rule, value, callback) => {
    if (value !== undefined && value !== '') {
        if (!/^[\u4e00-\u9fa50-9]+$/.test(value)) {
            callback(new Error('仅支持中文,阿拉伯数字'))
            return
        }
        callback()
    } else {
        callback()
    }
}

/**手机号码 */
const validatePhone = (rule, value, callback) => {
    // 手机号正则（中国大陆）
    const phoneReg = /^((13|14|15|16|17|18)[0-9]{1}\d{8})|((166|199|198)[0-9]{1}\d{7})$/
    if (value === '' || value === null || value === undefined) {
        // callback(new Error('请输入电话号码'))
        callback()
    } else if (!phoneReg.test(value)) {
        callback(new Error('请输入有效的手机号码'))
    } else {
        callback()
    }
}

/**手机号码或座机号码 */
const validatePhoneAndLandline = (rule, value, callback) => {
    // 手机号正则（中国大陆）
    const phoneReg = /^((13|14|15|16|17|18)[0-9]{1}\d{8})|((166|199|198)[0-9]{1}\d{7})$/
    // 座机号码正则（中国大陆）
    const landlineReg1 = /^(\d{3,4}-)?\d{7,8}$/
    const landlineReg2 = /^(\d{3,4})?\d{7,8}$/
    if (value === '' || value === null || value === undefined) {
        // callback(new Error('请输入电话号码'))
        callback()
    } else if (!phoneReg.test(value) && !landlineReg1.test(value) && !landlineReg2.test(value)) {
        callback(new Error('请输入有效的手机号码或座机号码'))
    } else {
        callback()
    }
}